#pragma once

#include <boost/describe.hpp>

#include <algorithm/shared/utils/Vec2.h>
#include <algorithm/shared/utils/Para.h>
#include <utils/ParaUtils.h>
#include <utils/HasValue.h>


namespace solar
{
    class SimulationPara : public Para
    {
        public:
            SimulationPara() = default;
#include <utils/class_name.inc>
        private:
            Vec2 receiver_pixel_size_ = {kUndefined, kUndefined};
            Vec2 micro_heliostat_pixel_size_ = {kUndefined, kUndefined};
            BOOST_DESCRIBE_CLASS(SimulationPara, (Para), (), (),
                                 (receiver_pixel_size_, micro_heliostat_pixel_size_))
    };
} // namespace solar

#define CURRENT_CLASS_NAME SimulationPara
#include <utils/class_describe_header.inc>
SOLAR_DESCRIBE_CLASS(SimulationPara, (Para), (), (),
                     (receiver_pixel_size_, micro_heliostat_pixel_size_))
